package com.dhcc.sds.busi.dao;

import com.dhcc.cdc.busi.entity.CdcEpisodeEntity;
import com.dhcc.core.framework.base.mapper.BaseMapper;
import com.dhcc.sdc.busi.entity.SdcBusiQcTriggeredEntity;
import com.dhcc.sdc.busi.entity.SdcQcEntity;
import com.dhcc.sds.busi.entity.SdsQcincaseDataEntity;
import com.dhcc.sds.busi.vo.AnalysisSdsPortalVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface SdsQcincaseDataMapper extends BaseMapper<SdsQcincaseDataEntity> {

    int selectRepCount(@Param("params") Map<String, Object> params);

    AnalysisSdsPortalVo selectCostAndDayByDimData(@Param("dimDataId") Long dimDataId);

    List<AnalysisSdsPortalVo> selectQCUpLoadData(@Param("params") Map<String, Object> params);

    List<AnalysisSdsPortalVo> selectLocUpLoadData(@Param("params") Map<String, Object> params);

    List<AnalysisSdsPortalVo> selectDocUpLoadData(@Param("params") Map<String, Object> params);

    List<AnalysisSdsPortalVo> selectARatio(@Param("params") Map<String, Object> params);

    List<AnalysisSdsPortalVo> selectUseTime(@Param("params") Map<String, Object> params);

    List<AnalysisSdsPortalVo> selectMrlistDataDetails(@Param("idName") String idName, @Param("deptIds") List<String> deptIds);

    List<SdsQcincaseDataEntity> selectByUploadDateAndUserLinkDepts(@Param("uploadDate") String uploadDate, @Param("params") Map<String, Object> params);

    List<CdcEpisodeEntity> selectQCDept(@Param("params") Map<String,Object> params);

    List<SdcBusiQcTriggeredEntity> selectQCCategory (@Param("params") Map<String,Object> params);

    List<SdcQcEntity> selectQcDetail(@Param(("id")) Long id);

    List<SdsQcincaseDataEntity> selectDaysByEntityId(@Param("entityId") Long entityId);

    List<CdcEpisodeEntity> selectPatientDetail(@Param("qcid") Long qcid);

    List<SdcBusiQcTriggeredEntity> selectQCCategoryByCondition (@Param("params") Map<String,Object> params);

    int selectTriggerCountByDate(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("params")Map<String, Object> params);

    AnalysisSdsPortalVo selectARatioByTime(@Param("entityId")Long entityId, @Param("params")Map<String, Object> params);

    List<AnalysisSdsPortalVo> selectUseTimeByTime(@Param("entityId")Long entityId, @Param("params")Map<String, Object> params);

    List<AnalysisSdsPortalVo> selectdevlist(@Param("params") Map<String, Object> params);

    List<Map<String, Object>> selectLocLoadData(@Param("params") Map<String, Object> params);
}

